package com.tjec.project.businessWorkbench.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tjec.framework.aspectj.lang.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tjec.framework.web.domain.BaseEntity;
import com.tjec.project.businessWorkbench.dto.BmsAttachmentDto;
import com.tjec.project.system.domain.BmsExpertCertification;

import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 专家使用对象 bms_business_expert_use
 * 
 * @author tjec
 * @date 2020-04-22
 */
public class BmsBusinessExpertUse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id 主键 */
    private String id;

    /** 业务ID 业务ID */
    @Excel(name = "业务ID")
    @ApiModelProperty(value = "业务ID")
    private String businessId;
    
    @ApiModelProperty(value = "是否推荐，0不推荐，1推荐")
    private String isRecommend;

    public String getIsRecommend() {
		return isRecommend;
	}

	public void setIsRecommend(String isRecommend) {
		this.isRecommend = isRecommend;
	}

	/** 专家姓名 专家姓名 */
    @Excel(name = "专家姓名")
    @ApiModelProperty(value = "专家姓名",name="name",required=true)
    private String name;

    /** 身份证号 身份证号 */
    @Excel(name = "身份证号")
    @ApiModelProperty(value = "身份证号")
    private String identityCard;

    /** 专家编号 专家编号（H0-四位流水号） */
    @Excel(name = "专家编号", readConverterExp = "H=0-四位流水号")
    @ApiModelProperty(value = "专家编号")
    private String serialNumber;

    /** 目前状态 目前状态（0在用，1停用） */
    @Excel(name = "目前状态", readConverterExp = "0=在用,1停用")
    @ApiModelProperty(value = "目前状态")
    private String currentState;

    /** 性别 性别（0男 1女 2未知） */
    @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知")
    @ApiModelProperty(value = "性别")
    private String sex;

    /** 出生年月 出生年月 */
    @Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出生年月")
    private Date birthday;

    /** 籍贯 籍贯 */
    @Excel(name = "籍贯")
    @ApiModelProperty(value = "籍贯")
    private String nativePlace;

    /** 职务 职务 */
    @Excel(name = "职务")
    @ApiModelProperty(value = "职务")
    private String duty;

    /** 最高学历 最高学历（0大专，1本科，2硕士，3博士，4其他） */
    @Excel(name = "最高学历", readConverterExp = "0=大专,1=本科,2=硕士,3=博士,4=其他")
    @ApiModelProperty(value = "最高学历")
    private String education;

    /** 毕业院校 毕业院校 */
    @Excel(name = "毕业院校")
    @ApiModelProperty(value = "毕业院校")
    private String school;

    /** 专业 专业 */
    @Excel(name = "专业")
    @ApiModelProperty(value = "专业")
    private String profession;

    /** 最高职称 最高职称（0中级，1高级，2正高级，3无，4其他） */
    @Excel(name = "最高职称", readConverterExp = "0=中级,1=高级,2=正高级,3=无,4=其他")
    @ApiModelProperty(value = "最高职称")
    private String professionalTitle;

    /** 专业类别 专业类别（从数据字典获取） */
    @Excel(name = "专业类别")
    @ApiModelProperty(value = "专业类别")
    private String professionCategory;

    /** 专业类别 专业类别（从数据字典获取） */
    @ApiModelProperty(value = "专业类别数组，用于传输")
    private String[] professionCategorys;
    
    /** 专业类别 专业类别（从数据字典获取） */
    @Excel(name = "专业类别名称")
    @ApiModelProperty(value = "专业类别名称")
    private String professionCategoryName;
    
    @ApiModelProperty(value = "专家持证情况集合")
    private List<BmsExpertCertification> bmsExpertCertifications;

    public String getProfessionCategoryName() {
		return professionCategoryName;
	}

	public void setProfessionCategoryName(String professionCategoryName) {
		this.professionCategoryName = professionCategoryName;
	}

	/** 专家来源 专家来源（0个人专家库 1企业专家库 2手动新增） */
    @Excel(name = "专家来源", readConverterExp = "0=个人专家库,1=企业专家库,2=手动新增")
    @ApiModelProperty(value = "专家来源")
    private String source;

    /** 关联专家ID 关联专家ID */
    @ApiModelProperty(value = "关联专家ID")
    private String expertId;

    /** 联系电话 联系电话 */
    @Excel(name = "联系电话")
    @ApiModelProperty(value = "联系电话")
    private String phonenumber;

    /** 邮箱 邮箱 */
    @Excel(name = "邮箱")
    @ApiModelProperty(value = "邮箱")
    private String email;

    /** 开户行 开户行 */
    @Excel(name = "开户行")
    @ApiModelProperty(value = "开户行")
    private String bankName;

    /** 银行卡号 银行卡号 */
    @Excel(name = "银行卡号")
    @ApiModelProperty(value = "银行卡号")
    private String bankNo;

    /** 现所在单位 现所在单位 */
    @Excel(name = "现所在单位")
    @ApiModelProperty(value = "现所在单位")
    private String currentCompany;

    /** 联系地址 联系地址 */
    @Excel(name = "联系地址")
    @ApiModelProperty(value = "联系地址")
    private String address;

    /** 是否同济大学在职人员 是否同济大学在职人员（0否，1是，2未知） */
    @Excel(name = "是否同济大学在职人员", readConverterExp = "0=否,1=是,2=未知")
    @ApiModelProperty(value = "是否同济大学在职人员")
    private String tjuFlag;

    /** 所在院系 所在院系 */
    @Excel(name = "所在院系")
    @ApiModelProperty(value = "所在院系")
    private String tjuFaculty;

    /** 沪建设工程评标专家 沪建设工程评标专家（0否，1是，2未知） */
    @Excel(name = "沪建设工程评标专家", readConverterExp = "0=否,1=是,2=未知")
    @ApiModelProperty(value = "沪建设工程评标专家")
    private String evaluationBidFlag;

    /** 沪建设工程评标专家专业 沪建设工程评标专家专业 */
    @Excel(name = "沪建设工程评标专家专业")
    @ApiModelProperty(value = "沪建设工程评标专家专业")
    private String evaluationBidProfession;

    /** 评标专家证号 沪建设工程评标专家证号 */
    @Excel(name = "沪建设工程评标专家证号")
    @ApiModelProperty(value = "沪建设工程评标专家证号")
    private String evaluationBidNo;

    /** 评标资深专家 评标资深专家(0是，1否) */
    @Excel(name = "评标资深专家 (0是，1否)")
    @ApiModelProperty(value = "评标资深专家")
    private String seniorExpertFlag;

    /** 沪政府采购专家 沪政府采购专家（0否，1是，2未知） */
    @Excel(name = "沪政府采购专家", readConverterExp = "0=否,1=是,2=未知")
    @ApiModelProperty(value = "沪政府采购专家")
    private String purchaseFlag;

    /** 沪政府采购专家专业 沪政府采购专家专业 */
    @Excel(name = "沪政府采购专家专业")
    @ApiModelProperty(value = "沪政府采购专家专业")
    private String purchaseProfession;

    /** 沪政府采购专家证号 沪政府采购专家证号 */
    @Excel(name = "沪政府采购专家证号")
    @ApiModelProperty(value = "沪政府采购专家证号")
    private String purchaseNo;

    /** 业务特长 业务特长：从数据字典获取 */
    @Excel(name = "业务特长")
    @ApiModelProperty(value = "业务特长")
    private String businessMerit;

    @ApiModelProperty(value = "业务分类数组，用于传输")
    private String[] businessMerits;

    /** 行业特长 行业特长：从数据字典获取 */
    @Excel(name = "行业特长")
    @ApiModelProperty(value = "行业特长")
    private String industryMerit;

    @ApiModelProperty(value = "行业类别数组，用于传输，多数据用英文分号隔开")
    private String[] industryMerits;

    /** 语言特长 语言特长：从数据字典获取 */
    @Excel(name = "语言特长")
    @ApiModelProperty(value = "语言特长")
    private String languageMerit;

    /** 经历与成就 经历与成就 */
    @Excel(name = "经历与成就")
    @ApiModelProperty(value = "经历与成就")
    private String introduction;

    /** 特长备注 特长备注 */
    @Excel(name = "特长备注")
    @ApiModelProperty(value = "特长备注")
    private String meritRemark;

    /** 使用时间 */
    @Excel(name = "使用时间 使用时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "使用时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date useDate;

    /** 咨询服务内容 咨询服务内容 */
    @Excel(name = "咨询服务内容")
    @ApiModelProperty(value = "咨询服务内容")
    private String consultingContent;

    /** 专家使用费 专家使用费 */
    @Excel(name = "专家使用费")
    @ApiModelProperty(value = "专家使用费")
    private Double useAmount;

    /** 专家使用评价意见 专家使用评价意见 */
    @Excel(name = "专家使用评价意见")
    @ApiModelProperty(value = "专家使用评价意见")
    private String opinion;

    /**专家使用附件*/
    @ApiModelProperty(value = "专家使用附件")
    private ArrayList<String> useAttachmentIds;

    /**家使用附件对象集合**/
    private List<BmsAttachmentDto> useAttachments;
    
    /**附件对象集合**/
    private List<BmsAttachmentDto> attachments;

    /** guid */
    private String guid;

    /** 其他联系电话 */
    @ApiModelProperty(value = "其他联系电话")
    private String otherContactNumber;

    public String getOtherContactNumber() {
        return otherContactNumber;
    }

    public void setOtherContactNumber(String otherContactNumber) {
        this.otherContactNumber = otherContactNumber;
    }

    public String[] getProfessionCategorys() {
        return professionCategorys;
    }

    public void setProfessionCategorys(String[] professionCategorys) {
        this.professionCategorys = professionCategorys;
    }

    public String[] getBusinessMerits() {
        return businessMerits;
    }

    public void setBusinessMerits(String[] businessMerits) {
        this.businessMerits = businessMerits;
    }

    public String[] getIndustryMerits() {
        return industryMerits;
    }

    public void setIndustryMerits(String[] industryMerits) {
        this.industryMerits = industryMerits;
    }

    public ArrayList<String> getUseAttachmentIds() {
        return useAttachmentIds;
    }

    public void setUseAttachmentIds(ArrayList<String> useAttachmentIds) {
        this.useAttachmentIds = useAttachmentIds;
    }

    public List<BmsAttachmentDto> getUseAttachments() {
        return useAttachments;
    }

    public void setUseAttachments(List<BmsAttachmentDto> useAttachments) {
        this.useAttachments = useAttachments;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setBusinessId(String businessId)
    {
        this.businessId = businessId;
    }

    public String getBusinessId()
    {
        return businessId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setIdentityCard(String identityCard) 
    {
        this.identityCard = identityCard;
    }

    public String getIdentityCard() 
    {
        return identityCard;
    }
    public void setSerialNumber(String serialNumber) 
    {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber() 
    {
        return serialNumber;
    }
    public void setCurrentState(String currentState) 
    {
        this.currentState = currentState;
    }

    public String getCurrentState() 
    {
        return currentState;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setNativePlace(String nativePlace) 
    {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() 
    {
        return nativePlace;
    }
    public void setDuty(String duty) 
    {
        this.duty = duty;
    }

    public String getDuty() 
    {
        return duty;
    }
    public void setEducation(String education) 
    {
        this.education = education;
    }

    public String getEducation() 
    {
        return education;
    }
    public void setSchool(String school) 
    {
        this.school = school;
    }

    public String getSchool() 
    {
        return school;
    }
    public void setProfession(String profession) 
    {
        this.profession = profession;
    }

    public String getProfession() 
    {
        return profession;
    }
    public void setProfessionalTitle(String professionalTitle) 
    {
        this.professionalTitle = professionalTitle;
    }

    public String getProfessionalTitle() 
    {
        return professionalTitle;
    }
    public void setProfessionCategory(String professionCategory) 
    {
        this.professionCategory = professionCategory;
    }

    public String getProfessionCategory() 
    {
        return professionCategory;
    }
    public void setSource(String source) 
    {
        this.source = source;
    }

    public String getSource() 
    {
        return source;
    }
    public void setExpertId(String expertId)
    {
        this.expertId = expertId;
    }

    public String getExpertId()
    {
        return expertId;
    }
    public void setPhonenumber(String phonenumber) 
    {
        this.phonenumber = phonenumber;
    }

    public String getPhonenumber() 
    {
        return phonenumber;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }
    public void setBankNo(String bankNo) 
    {
        this.bankNo = bankNo;
    }

    public String getBankNo() 
    {
        return bankNo;
    }
    public void setCurrentCompany(String currentCompany) 
    {
        this.currentCompany = currentCompany;
    }

    public String getCurrentCompany() 
    {
        return currentCompany;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setTjuFlag(String tjuFlag) 
    {
        this.tjuFlag = tjuFlag;
    }

    public String getTjuFlag() 
    {
        return tjuFlag;
    }
    public void setTjuFaculty(String tjuFaculty) 
    {
        this.tjuFaculty = tjuFaculty;
    }

    public String getTjuFaculty() 
    {
        return tjuFaculty;
    }
    public void setEvaluationBidFlag(String evaluationBidFlag) 
    {
        this.evaluationBidFlag = evaluationBidFlag;
    }

    public String getEvaluationBidFlag() 
    {
        return evaluationBidFlag;
    }
    public void setEvaluationBidProfession(String evaluationBidProfession) 
    {
        this.evaluationBidProfession = evaluationBidProfession;
    }

    public String getEvaluationBidProfession() 
    {
        return evaluationBidProfession;
    }
    public void setEvaluationBidNo(String evaluationBidNo) 
    {
        this.evaluationBidNo = evaluationBidNo;
    }

    public String getEvaluationBidNo() 
    {
        return evaluationBidNo;
    }
    public void setSeniorExpertFlag(String seniorExpertFlag) 
    {
        this.seniorExpertFlag = seniorExpertFlag;
    }

    public String getSeniorExpertFlag() 
    {
        return seniorExpertFlag;
    }
    public void setPurchaseFlag(String purchaseFlag) 
    {
        this.purchaseFlag = purchaseFlag;
    }

    public String getPurchaseFlag() 
    {
        return purchaseFlag;
    }
    public void setPurchaseProfession(String purchaseProfession) 
    {
        this.purchaseProfession = purchaseProfession;
    }

    public String getPurchaseProfession() 
    {
        return purchaseProfession;
    }
    public void setPurchaseNo(String purchaseNo) 
    {
        this.purchaseNo = purchaseNo;
    }

    public String getPurchaseNo() 
    {
        return purchaseNo;
    }
    public void setBusinessMerit(String businessMerit) 
    {
        this.businessMerit = businessMerit;
    }

    public String getBusinessMerit() 
    {
        return businessMerit;
    }
    public void setIndustryMerit(String industryMerit) 
    {
        this.industryMerit = industryMerit;
    }

    public String getIndustryMerit() 
    {
        return industryMerit;
    }
    public void setLanguageMerit(String languageMerit) 
    {
        this.languageMerit = languageMerit;
    }

    public String getLanguageMerit() 
    {
        return languageMerit;
    }
    public void setIntroduction(String introduction) 
    {
        this.introduction = introduction;
    }

    public String getIntroduction() 
    {
        return introduction;
    }
    public void setMeritRemark(String meritRemark) 
    {
        this.meritRemark = meritRemark;
    }

    public String getMeritRemark() 
    {
        return meritRemark;
    }
    public void setUseDate(Date useDate) 
    {
        this.useDate = useDate;
    }

    public Date getUseDate() 
    {
        return useDate;
    }
    public void setConsultingContent(String consultingContent) 
    {
        this.consultingContent = consultingContent;
    }

    public String getConsultingContent() 
    {
        return consultingContent;
    }
    public void setUseAmount(Double useAmount) 
    {
        this.useAmount = useAmount;
    }

    public Double getUseAmount() 
    {
        return useAmount;
    }
    public void setOpinion(String opinion) 
    {
        this.opinion = opinion;
    }

    public String getOpinion() 
    {
        return opinion;
    }
    public void setGuid(String guid) 
    {
        this.guid = guid;
    }

    public String getGuid() 
    {
        return guid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("businessId", getBusinessId())
            .append("name", getName())
            .append("identityCard", getIdentityCard())
            .append("serialNumber", getSerialNumber())
            .append("currentState", getCurrentState())
            .append("sex", getSex())
            .append("birthday", getBirthday())
            .append("nativePlace", getNativePlace())
            .append("duty", getDuty())
            .append("education", getEducation())
            .append("school", getSchool())
            .append("profession", getProfession())
            .append("professionalTitle", getProfessionalTitle())
            .append("professionCategory", getProfessionCategory())
            .append("source", getSource())
            .append("expertId", getExpertId())
            .append("phonenumber", getPhonenumber())
            .append("email", getEmail())
            .append("bankName", getBankName())
            .append("bankNo", getBankNo())
            .append("currentCompany", getCurrentCompany())
            .append("address", getAddress())
            .append("tjuFlag", getTjuFlag())
            .append("tjuFaculty", getTjuFaculty())
            .append("evaluationBidFlag", getEvaluationBidFlag())
            .append("evaluationBidProfession", getEvaluationBidProfession())
            .append("evaluationBidNo", getEvaluationBidNo())
            .append("seniorExpertFlag", getSeniorExpertFlag())
            .append("purchaseFlag", getPurchaseFlag())
            .append("purchaseProfession", getPurchaseProfession())
            .append("purchaseNo", getPurchaseNo())
            .append("businessMerit", getBusinessMerit())
            .append("industryMerit", getIndustryMerit())
            .append("languageMerit", getLanguageMerit())
            .append("introduction", getIntroduction())
            .append("meritRemark", getMeritRemark())
            .append("useDate", getUseDate())
            .append("consultingContent", getConsultingContent())
            .append("useAmount", getUseAmount())
            .append("opinion", getOpinion())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("guid", getGuid())
            .append("attachments", getAttachments())
            .append("professionCategoryName", getProfessionCategoryName())
            .append("bmsExpertCertifications",getBmsExpertCertifications())
            .toString();
    }

	public List<BmsAttachmentDto> getAttachments() {
		return attachments;
	}

	public List<BmsExpertCertification> getBmsExpertCertifications() {
		return bmsExpertCertifications;
	}

	public void setBmsExpertCertifications(List<BmsExpertCertification> bmsExpertCertifications) {
		this.bmsExpertCertifications = bmsExpertCertifications;
	}

	public void setAttachments(List<BmsAttachmentDto> attachments) {
		this.attachments = attachments;
	}
}
